// pages/settings/WordAndUserManage/WordAndUserManage.js
const app = getApp()
var dbName = ''
var where={}
var content=''
var pron=''
var definition=''
Page({

  /**
   * 页面的初始数据
   */
  data: {
    pageNum: 1,
    pageSize: 20,
    hasMore: true,
    list: [],
    showModalStatus: false,
    content: "",
    pron: "",
    definition: "",
    show:true
  },
  addWord:function(){
    this.setData({
      showModalStatus:true
    })
  },
  /**
   * 用于当更新input组件中的值时同时更新对应变量的值
   * 获取 前台传入的变量
   */
  bindKeyInputContent: function (e) {
    // this.setData({
    //   content: e.detail.value
    // })
    content=e.detail.value;
  },
  bindKeyInputPron: function (e) {
    // this.setData({
    //   pron: e.detail.value
    // })
    pron=e.detail.value;
  },
  bindKeyInputDefinition: function (e) {
    // this.setData({
    //   definition: e.detail.value
    // })
    definition=e.detail.value;
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var that = this
    //初始化标题
    var title = options.title
    if (title) {
      wx.setNavigationBarTitle({
        title: title,
      })
    }

    //根据标题判断集合名称并定义不同的条件
    if(title=='词库管理'){
      dbName='wordList'
      where={}
    }else{
      dbName='wrongWord'
      where={
        _openid: app.globalData.userId
      }
      that.setData({
        show:false
      })
    }

    //初始化查询词库方法
    that.getContentInfo('正在加载数据',where)//读取信息
  },
  /**
   * 封装加载数据方法
   */
  getContentInfo: function (message,where) {
    //加载 显示信息
    wx.showLoading({
      title: message,
    })
    //调用查询词库的方法
    this.getDataList(this.data.pageSize, this.data.pageNum, dbName, where);
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    wx.showNavigationBarLoading() //在标题栏中显示加载
    this.data.pageNum = 1
    this.getContentInfo('正在刷新数据')
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    if (this.data.hasMore) {
      this.getContentInfo('加载更多数据')
    } else {
      wx.showToast({
        title: '没有更多数据',
      })
    }
  },
  /**
   * 查询单词详情
   */
  detailData:function(e){
    var that = this
    //获取前台得到的单词
    var content = e.currentTarget.dataset.id
    //跳转到学习页面展示详情
    wx.navigateTo({
      url: '/pages/jiansuo/jiansuo?content=' + content
    });
  },
  /**
   * 删除单词
   */
  delData:function(e){
    var that = this
    //获取单词id
    var id = e.currentTarget.dataset.id
    //删除前弹窗提示
    wx.showModal({
      title: '警告',
      content: '您确定删除这条数据吗？',
      success: function (res) {
        //这里是点击了确定以后
        if (res.confirm) {
          //调用云函数删除单词
          wx.cloud.callFunction({
            name:'doData',
            data:{
              dbName:dbName,
              options:'del',
              id:id
            },
            success: res => {
              var data = {
                title: that.data.title
              }
              //成功后重新导入页面
              that.setData({
                pageNum:that.data.pageNum-1
              })
              that.onLoad(data);
            }
          })
        } else {//这里是点击了取消以后
          console.log('用户点击取消')
        }
      }
    })
  },
  /**
    * 获取数据库单词列表数据
    * @param pageSize 每条条数
    * @param pageNum 第几页
    * @param type  数据库名称（集合名称）
    * @param where 查询条件
    */
  getDataList: function (pageSize, pageNum, type, where){
    var that=this
    //调用云函数读取数据库数据 自定义分页函数
    wx.cloud.callFunction({
      name: 'GetWordList',
      data: {
        dbName: type,
        pageIndex: pageNum,
        pageSize: pageSize,
        filter: where
      },
      success: res => {
        //判断云函数是否返回成功
        if (res.errMsg == "cloud.callFunction:ok") {
          //隐藏各加载弹框组件
          wx.hideLoading();
          wx.hideNavigationBarLoading() //完成停止加载
          wx.stopPullDownRefresh() //停止下拉刷新
          //将获取到的数据放在变量里
          var data = res.result.data;
          //
          var nowPageNum=that.data.pageNum+1;
          if (res.result.hasMore) {
            that.setData({
              list: data,
              hasMore: true,
              pageNum: nowPageNum
            })
          } else {
            that.setData({
              list: data,
              hasMore: false
            })
          }
        }
      }
    })
  },

  // 弹框
  powerDrawer: function (e) {
    var currentStatu = e.currentTarget.dataset.statu;
    this.util(currentStatu)
  },
  util: function (currentStatu) {
    /* 动画部分 */
    // 第1步：创建动画实例   
    var animation = wx.createAnimation({
      duration: 200, //动画时长  
      timingFunction: "linear", //线性  
      delay: 0 //0则不延迟  
    });

    // 第2步：这个动画实例赋给当前的动画实例  
    this.animation = animation;

    // 第3步：执行第一组动画  
    animation.opacity(0).rotateX(-100).step();

    // 第4步：导出动画对象赋给数据对象储存  
    this.setData({
      animationData: animation.export()
    })

    // 第5步：设置定时器到指定时候后，执行第二组动画  
    setTimeout(function () {
      // 执行第二组动画  
      animation.opacity(1).rotateX(0).step();
      // 给数据对象储存的第一组动画，更替为执行完第二组动画的动画对象  
      this.setData({
        animationData: animation
      })
      
      if (currentStatu == "yes") {
        //用户点击确认添加以后 调用云函数添加数据
        wx.cloud.callFunction({
          name:'doData',
          data:{
            dbName: dbName,
            options: 'add',
            data:{
              content: content,
              definition: definition,
              pron: pron
            }
          },
          success:res=>{
            //判断云函数是否返回成功
            if (res.errMsg == "cloud.callFunction:ok") {
              wx.showToast({
                title: '添加成功',
                icon: 'succes',
                duration: 1000,
                mask: true
              })
            }else{
              wx.showToast({
                title: '添加失败',
                icon: 'none',
                duration: 1000,
                mask: true
              })
            }
            //关闭
            this.setData({
              showModalStatus: false
            });
          }
        })
      }
    }.bind(this), 200)
    // 显示  
    if (currentStatu == "no") {
      this.setData({
        showModalStatus: false
      });
    }
  }
})